SPSS 暂存变量 (Scratch Variables)
作者:Ruben Geert van den Berg
定义
暂存变量 (Scratch Variables) 是临时的辅助变量,它们不会显示在您的数据集中。一个变量被称为暂存变量,当且仅当它的名称以 “#” 开头。
SPSS 暂存变量 - 简介
SPSS 语法示例
***1. 创建数据.
**
data list free / phone(a11).
begin data
020-2868825 020-8243613 075-6485421 010-9854183 0249-897201
010-0039658 0249-985638 023-5925133 020-0520029 075-3297331
end data.
***2. 确定 "-" 符号的位置.
**
compute position = char.index(phone,'-').
exe.
***3. 使用 substring 函数提取区号.
**
string area (a4).
compute area = char.substr(phone,1,position - 1).
exe.
SPSS 暂存变量 - 示例
- 运行第一个示例后,我们将分离出区号。但是,我们不希望 “position” 也出现在我们的数据中。它只是一个辅助变量,用于提取正确的子字符串,因此我们可以之后删除它。
- 一个稍微简洁的解决方案是使用 “#position” 代替。由于这是一个暂存变量,它不会显示在我们的数据中,因此无需删除它。下面的语法演示了这一点。
- 请注意,通常我们会使用替换来实现这一点,如我们的 SPSS 字符串变量教程 中所示。
SPSS 暂存变量 - 语法示例
***1. 删除新的变量,为下面的方法做准备.
**
delete variables position area.
***2. 确定 "@" 符号的位置.
**
compute #position = char.index(phone,'-').
***3. 使用 substring 函数提取区号.
**
string area (a4).
compute area = char.substr(phone,1,#position - 1).
exe.
SPSS 暂存变量 - 特殊功能
- 暂存变量的第一个特殊功能是它们不会显示在您的数据中。我们在前面的示例中已经遇到了这一点。
- 第二个特殊功能是暂存变量不会被重新初始化。这个比较技术性的点意味着,如果变量尚未包含值,则每个值的计算都从前一个案例的值开始。对于非暂存变量,通过 Cohen’s D - T 检验的效应量 可以实现完全相同的效果,这使得计算案例的累积统计量变得容易。 请注意,计算累积统计量的首选方法通常是通过
LAG
函数(LAG 函数)。下面的第一个语法示例展示了如何使用暂存变量计算累积总和。 - 最后,数据传递会删除所有暂存变量。有关数据传递的更多信息,请参见 SPSS 转换命令。暂存变量不能在过程中使用,因为这些过程总是涉及数据传递。运行
EXECUTE
也会强制进行数据传递,因此会删除所有暂存变量。下面的第二个示例显示了这一点。
SPSS 暂存变量 - 语法示例
***1. 创建一个小的测试数据集.
**
data list free/id.
begin data
1 2 3 4 5
end data.
***2. #sum 的计算从前一个值开始. 因此,像这样计算累积和.
**
compute #cumulative = sum(id,#cumulative).
compute cumulative = #cumulative.
exe.
***3. 在下一个示例之前删除 'cumulative'.
**
delete variables cumulative.
***4. 第一个 'exe' 触发数据传递,这将删除 #cumulative. 这导致第二个 'compute' 失败.
**
compute #cumulative = sum(id,#cumulative).
exe.
compute cumulative = #cumulative.
exe.